package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * JDBC示例类，用于演示如何使用JDBC连接数据库并执行SQL语句
 */
public class JDBCDemo1 {
    /**
     * 主函数，程序入口
     * 该方法演示了如何加载数据库驱动、连接数据库、创建数据表，并最后关闭数据库连接
     * <p>
     * 可能抛出的异常：
     * - ClassNotFoundException：如果数据库驱动类不存在
     * - SQLException：如果数据库连接或SQL执行过程中发生错误
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 加载MySQL数据库驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 通过DriverManager获取数据库连接
        // 参数包括：数据库URL、用户名、密码
        Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        // 输出连接成功提示
        System.out.println("与数据库建立连接");

        // 创建Statement对象，用于执行SQL语句
        Statement statement = conn.createStatement();

        // 定义创建数据表的SQL语句
        String str = "CREATE TABLE userinfo\n" +
                "(\n" +
                "    id       INT PRIMARY KEY AUTO_INCREMENT,\n" +
                "    username VARCHAR(32),\n" +
                "    password VARCHAR(32),\n" +
                "    nickname VARCHAR(32),\n" +
                "    age      INT(3)\n" +
                ");\n";

        // 执行创建表的SQL语句
        statement.execute(str);
        // 输出表创建成功提示
        System.out.println("表创建成功");


        // 关闭数据库连接
        conn.close();
    }
}
